package lxs.swift.instance.convert;


import lxs.swift.instance.HashStruct;
import lxs.swift.instance.StructArray;

import java.util.Date;
import java.util.function.Function;

public interface Converter {

    Function<Object, HashStruct> structConverter();

    Function<Object, StructArray> arrayConverter();

    Function<Object, String> stringConverter();


    Function<Object, Boolean> booleanConverter();

    Function<Object, Date> dateConverter();

    Function<Object, Integer> intConverter();

    Function<Object, Long> longConverter();

    Function<Object, Double> doubleConverter();

    <T extends Enum<T>> Function<Object, T> enumConverter(Class<T> clazz);


}
